package com.kaguya.vams.domain.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 基础实体类
 * @author : kaguya
 * @date : 16:51 2021/7/28
 */
@Data
public class BaseEntity implements Serializable {

    //主键 id 自增
    @TableId(value = "id",type = IdType.AUTO)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @NotNull(message = "id不能为空")
    private Long id;

    //创建时间 mp自动填充
    @NotNull
    (message = "创建时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime created;

    //修改时间 mp自动填充
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updated;
    
    //状态 0 禁用 1 可用 mp自动填充
    @NotNull
    (message = "状态不能为空")
    @TableField(fill = FieldFill.INSERT)
    private Integer status;
}
